/*
* Copyright (C) 2015 maartenl
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package awesomeness.vaadin;
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.Widgetset;
import com.vaadin.server.VaadinRequest;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Layout;
import com.vaadin.ui.MenuBar;
import com.vaadin.ui.MenuBar.MenuItem;
import com.vaadin.ui.Panel;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;
import java.text.SimpleDateFormat;
import javax.persistence.EntityManager;
import mmud.database.entities.game.Admin;
/**
*
*/
@Theme("reindeer")
@Widgetset("awesomeness.vaadin.MyAppWidgetset")
public class MyUI extends UI
{
@Override
protected void init(VaadinRequest vaadinRequest)
{
MyUIServlet servlet = ((MyUIServlet) MyUIServlet.getCurrent());
EntityManager em = servlet.getEntityManager();
Admin admin = servlet.getCurrentUser();
Panel mainPanel = new Panel("Administration pages");
setContent(mainPanel);
VerticalLayout layout = new VerticalLayout();
mainPanel.setContent(layout);
// Create the tabsheet
MenuBar barmenu = new MenuBar();
layout.addComponent(barmenu);
final Panel currentUserPanel = new Panel();
Layout currentUserLayout = new HorizontalLayout();
currentUserPanel.setContent(currentUserLayout);
SimpleDateFormat simpleDateFormat
= new SimpleDateFormat("EEEE, dd MMMM yyyy");// yyyy/MM/dd
String dateString
= simpleDateFormat.format(admin.getValiduntil().getTime());
Label nameLabel = new Label("Name: " + admin.getName());
Label emailLabel = new Label("Email: " + admin.getEmail());
Label validUntilLabel = new Label("Valid until: " + dateString);
currentUserLayout.setWidth(100, Unit.PERCENTAGE);
currentUserLayout.addComponent(nameLabel);
currentUserLayout.addComponent(emailLabel);
currentUserLayout.addComponent(validUntilLabel);
layout.addComponent(currentUserPanel);
final Panel worldAttributesPanel = new Panel("Worldattributes");
worldAttributesPanel.setVisible(false);
Layout worldattributes = new WorldAttributes(admin, servlet.getLogBean());
worldAttributesPanel.setContent(worldattributes);
layout.addComponent(worldAttributesPanel);
final Panel scriptsPanel = new Panel("Scripts");
scriptsPanel.setVisible(false);
Layout scripts = new Scripts(admin, servlet.getLogBean());
scriptsPanel.setContent(scripts);
layout.addComponent(scriptsPanel);
final Panel areasPanel = new Panel("Areas");
areasPanel.setVisible(false);
Layout areas = new Areas(admin, servlet.getLogBean());
areasPanel.setContent(areas);
layout.addComponent(areasPanel);
final Panel eventsPanel = new Panel("Events");
eventsPanel.setVisible(false);
Layout events = new Events(admin, servlet.getLogBean());
eventsPanel.setContent(events);
layout.addComponent(eventsPanel);
final Panel roomsPanel = new Panel("Rooms");
roomsPanel.setVisible(false);
Layout rooms = new Rooms(admin, servlet.getLogBean());
roomsPanel.setContent(rooms);
layout.addComponent(roomsPanel);
final Panel commandsPanel = new Panel("Commands");
commandsPanel.setVisible(false);
Layout commands = new Commands(admin, servlet.getLogBean());
commandsPanel.setContent(commands);
layout.addComponent(commandsPanel);
final Panel logsPanel = new Panel("Logs");
logsPanel.setVisible(false);
Layout logs = new Logs(admin, servlet.getLogBean());
logsPanel.setContent(logs);
layout.addComponent(logsPanel);
final Panel helpPanel = new Panel("Help");
helpPanel.setVisible(false);
Explanations explanations = new Explanations(admin, servlet.getLogBean());
explanations.init();
helpPanel.setContent(explanations);
layout.addComponent(helpPanel);
final Panel banishmentPanel = new Panel("Banishment");
banishmentPanel.setVisible(false);
Banishment banishment = new Banishment(admin, servlet.getLogBean());
banishment.init();
banishmentPanel.setContent(banishment);
layout.addComponent(banishmentPanel);
final Panel itemDefinitionsPanel = new Panel("Item definitions");
itemDefinitionsPanel.setVisible(false);
ItemDefinitions itemdefinitions = new ItemDefinitions(admin, servlet.getLogBean(), this);
itemDefinitionsPanel.setContent(itemdefinitions);
layout.addComponent(itemDefinitionsPanel);
final Panel charactersPanel = new Panel("Characters");
charactersPanel.setVisible(false);
Characters characters = new Characters(servlet.getPersonProvider(), admin, servlet.getLogBean(), this);
charactersPanel.setContent(characters);
layout.addComponent(charactersPanel);
final Panel guildsPanel = new Panel("Guilds");
guildsPanel.setVisible(false);
Guilds guilds = new Guilds(admin, servlet.getLogBean(), this);
guildsPanel.setContent(guilds);
layout.addComponent(guildsPanel);
final MenuBar.Command command;
command = new MenuBar.Command()
{
@Override
public void menuSelected(MenuItem selectedItem)
{
worldAttributesPanel.setVisible(false);
scriptsPanel.setVisible(false);
areasPanel.setVisible(false);
eventsPanel.setVisible(false);
roomsPanel.setVisible(false);
commandsPanel.setVisible(false);
logsPanel.setVisible(false);
banishmentPanel.setVisible(false);
itemDefinitionsPanel.setVisible(false);
helpPanel.setVisible(false);
charactersPanel.setVisible(false);
guildsPanel.setVisible(false);
switch (selectedItem.getText())
{
case "Worldattributes":
worldAttributesPanel.setVisible(true);
break;
case "Scripts":
scriptsPanel.setVisible(true);
break;
case "Areas":
areasPanel.setVisible(true);
break;
case "Events":
eventsPanel.setVisible(true);
break;
case "Rooms":
roomsPanel.setVisible(true);
break;
case "Commands":
commandsPanel.setVisible(true);
break;
case "Logs":
logsPanel.setVisible(true);
break;
case "Banishment":
banishmentPanel.setVisible(true);
break;
case "Item definitions":
itemDefinitionsPanel.setVisible(true);
break;
case "Help":
helpPanel.setVisible(true);
break;
case "Characters":
charactersPanel.setVisible(true);
break;
case "Guilds":
guildsPanel.setVisible(true);
break;
}
}
};
MenuItem players = barmenu.addItem("Players", null, null);
players.addItem("Characters", null, command);
players.addItem("Guilds", null, command);
players.addItem("Banishment", null, command);
barmenu.addItem("Rooms", null, command);
MenuItem items = barmenu.addItem("Items", null, null);
items.addItem("Item definitions", null, command);
barmenu.addItem("Areas", null, command);
barmenu.addItem("Logs", null, command);
// toplevel
MenuItem scripting = barmenu.addItem("Scripting", null, null);
scripting.addItem("Worldattributes", null, command);
scripting.addItem("Commands", null, command);
scripting.addItem("Events", null, command);
scripting.addItem("Scripts", null, command);
barmenu.addItem("Help", null, command);
}
}